❓ Как организовать Dependency Injection в проекте без DI-контейнера
Anonymous Quiz
15%
Передавать зависимости через аргументы функций вручную в каждом вызове
9%
Использовать глобальные переменные
71%
Создавать зависимости вручную и передавать через конструкторы
5%
Надеяться, что всё "само соберётся"
❓ Как происходит ожидание в ThreadPool
Anonymous Quiz
48%
Потоки блокируются и ждут своей очереди, не выполняя никаких операций, пока не получат задачу
6%
Ожидание задач происходит через использование бесконечного цикла, который забивает процессор
19%
Потоки в ThreadPool автоматически «засыпают» на случайных промежутках времени
28%
Потоки не ожидают задачи, а немедленно завершат выполнение, как только они завершат текущую задачу
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике
Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.
Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.
➡️ Читать статью
🐸 Библиотека шарписта
Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.
Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Где будет размещен значимый тип данных, если он объявлен внутри класса
Anonymous Quiz
3%
В хранилище базы данных
84%
В стеке, вместе с экземпляром класса, если класс — это структура
10%
В памяти операционной системы на уровне ядра
4%
В отдельном пуле потоков
❓ Можно ли в рамках lock использовать await
Anonymous Quiz
15%
Да, это безопасно, так как await просто приостанавливает выполнение метода и не блокирует поток.
9%
Да, lock автоматически переходит в асинхронный режим, когда используется await
12%
Нет, использование await внутри lock приводит к блокировке всей программы
64%
Нет, lock и await несовместимы, так как await требует освобождения потока, а lock его блокирует
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🎮⛰ Дорожная карта Unity-разработчика 2025: с нуля до джуна
Если вы хотите создать свою игру с нуля или систематизировать знания, эта дорожная карта — идеальный старт.
Рассмотрели все важные этапы: от основ языка C# до работы с физикой, интерфейсом и сторонними SDK. Шаг за шагом объясняются ключевые темы, такие как ООП, паттерны проектирования, корутины и оптимизация.
В конце бонус — подборка полезных ресурсов.
➡️ Пройти путь по карте
🐸 Библиотека шарписта
Если вы хотите создать свою игру с нуля или систематизировать знания, эта дорожная карта — идеальный старт.
Рассмотрели все важные этапы: от основ языка C# до работы с физикой, интерфейсом и сторонними SDK. Шаг за шагом объясняются ключевые темы, такие как ООП, паттерны проектирования, корутины и оптимизация.
В конце бонус — подборка полезных ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Как ViewModel взаимодействует с Model в паттерне MVVM
Anonymous Quiz
6%
Изменяет данные в Model через прямой доступ к базе данных, не преобразуя их
8%
Не имеет доступа к Model, все взаимодействие происходит через View
85%
Получает данные из Model, преобразует их для UI и обновляет View через привязку данных
2%
Использует глобальные переменные для получения данных из Model без какого-либо преобразования
❓ Как работает командная логика в MVVM и что такое ICommand
Anonymous Quiz
68%
Привязывает действия UI к методам ViewModel и блокирует выполнение, если команда не выполнена
14%
Работает только с UI-компонентами, такими как кнопки, и не влияет на состояние приложения
13%
Привязываются напрямую к View, и все действия выполняются внутри View, без участия ViewModel
5%
Управляет только визуальными эффектами в UI и не имеет отношения к логике или данным
🎉🐙🐱 20 лет Git: все такой же необычный, все такой же великолепный
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
Погружаемся в историю, эволюцию и влияние Git на индустрию разработки.
➡️ Читать статью
🐸 Библиотека программиста
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
Погружаемся в историю, эволюцию и влияние Git на индустрию разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как ответить: Упомяните следующие практики: использование последовательных соглашений об именах, использование комментариев и документации, написание модульного и повторно используемого кода, оптимизация производительности, следование принципам SOLID.
Пример ответа: «Для написания чистого и поддерживаемого кода на C# важно использовать определенные практики. В них включаются использование последовательных соглашений об именах для переменных, классов и методов, написание конструктивных комментариев и документации, разбиение кода на модульные и повторно используемые части, оптимизация производительности с помощью уменьшения числа ненужных операций и следование принципам SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion)».
На что обращают внимание: на кандидатов, которые могут рассказать о части лучших практик для написания чистого кода, включая основные элементы, такие как соглашения об именах, модульность, оптимизация производительности и следование принципам SOLID.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как в Unity обрабатывается физика на объектах с компонентами Rigidbody в сценах с множественными активными камерами, и как это может повлиять на производительность игры?
В Unity когда на сцене присутствуют множественные активные камеры, физические расчеты для объектов с компонентами Rigidbody выполняются независимо от количества камер. Физика обрабатывается на уровне движка и не дублируется для каждой камеры.
Однако визуализация сцены с множеством камер может заметно увеличить требования к производительности, поскольку каждая камера требует отдельного рендеринга сцены. Это может привести к снижению частоты кадров, особенно если сцены сложные или содержат большое количество детализированных объектов. Важно оптимизировать использование камер и стараться минимизировать их количество для поддержания оптимальной производительности.
🐸 Библиотека задач по C#
Однако визуализация сцены с множеством камер может заметно увеличить требования к производительности, поскольку каждая камера требует отдельного рендеринга сцены. Это может привести к снижению частоты кадров, особенно если сцены сложные или содержат большое количество детализированных объектов. Важно оптимизировать использование камер и стараться минимизировать их количество для поддержания оптимальной производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие есть различия между GameObject и MonoBehaviour?
GameObject — это базовая единица в Unity, которая представляет собой объект в сцене. MonoBehaviour — это компонент, который может быть добавлен к GameObject для расширения его функциональности.
Этот вопрос является сложным, потому что он требует понимания основ объектов и компонентов в Unity. GameObject и MonoBehaviour — это две ключевые концепции в Unity, и важно понимать разницу между ними, чтобы создавать эффективные игры.
🐸 Библиотека задач по C#
Этот вопрос является сложным, потому что он требует понимания основ объектов и компонентов в Unity. GameObject и MonoBehaviour — это две ключевые концепции в Unity, и важно понимать разницу между ними, чтобы создавать эффективные игры.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠⚡️👟 Странные, но эффективные лайфхаки для продуктивности
Иногда самые действенные способы повысить продуктивность звучат как полный бред. Но это работает! Пользователи Reddit делятся своими «тупо-звучащими-но-реально-помогающими» секретами, которые помогут тебе наконец-то перестать прокрастинировать и начать делать дела.
ТОП-советы от пользователей Reddit — в нашей статье.
🐸 Библиотека программиста
Иногда самые действенные способы повысить продуктивность звучат как полный бред. Но это работает! Пользователи Reddit делятся своими «тупо-звучащими-но-реально-помогающими» секретами, которые помогут тебе наконец-то перестать прокрастинировать и начать делать дела.
ТОП-советы от пользователей Reddit — в нашей статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👾 — Выбросит исключение
👍 — Произойдет взаимоблокировка
🥰 — Напечатает слово "test"
⚡️ — Напечатает слово "test" бесконечное число раз
Библиотека задач по C#
👾 — Выбросит исключение
👍 — Произойдет взаимоблокировка
🥰 — Напечатает слово "test"
Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой уровень доступа имеют поля класса, если модификатор доступа не указан?
Если не указывать модификатор доступа для поля класса, то по умолчанию они объявляются с модификатором private. Для всех модификаторов доступа действует правило: если не указан модификатор, то устанавливается максимально строгий, при котором код будет компилироваться.
🐸 Библиотека задач по C#
Если не указывать модификатор доступа для поля класса, то по умолчанию они объявляются с модификатором private. Для всех модификаторов доступа действует правило: если не указан модификатор, то устанавливается максимально строгий, при котором код будет компилироваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая разница между классами System.String и System.Text.StringBuilder?
Данные, хранящиеся в классе System.String и есть неизменяемые (immutable). Класс System.StringBuilder разрабатывался так, чтобы над изменяемой строкой можно было проделать множество операций. То есть при каждой операции над объектом класса System.String происходит перенос данных в новую область памяти, что влияет на производительность программы.
🐸 Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Что такое сериализация в C#?
Процесс преобразования, который преобразует данные объекта класса в поток байтов. Затем его можно передать по сети или сохранить в памяти, файле или базе данных.
В первую очередь сериализация используется для сохранения состояния объекта, что позволяет нам восстановить его позже. Чтобы обратить процесс вспять, нам нужно использовать десериализацию. Нам доступны различные типы сериализации.
Двоичный: конвертируйте объект в двоичные байты, что полезно для передачи по сети или локального хранения.
SOAP: преобразование объекта в поток байтов для передачи по сети в различных архитектурах.
XML: преобразование объекта в формат XML, полезный для передачи по сети или локального хранения.
JSON: преобразование объекта в строку JSON, что полезно для обмена данными между приложениями.
🐸 Библиотека задач по C#
В первую очередь сериализация используется для сохранения состояния объекта, что позволяет нам восстановить его позже. Чтобы обратить процесс вспять, нам нужно использовать десериализацию. Нам доступны различные типы сериализации.
Двоичный: конвертируйте объект в двоичные байты, что полезно для передачи по сети или локального хранения.
SOAP: преобразование объекта в поток байтов для передачи по сети в различных архитектурах.
XML: преобразование объекта в формат XML, полезный для передачи по сети или локального хранения.
JSON: преобразование объекта в строку JSON, что полезно для обмена данными между приложениями.
Please open Telegram to view this post
VIEW IN TELEGRAM